/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bookshare;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 *
 * @author gatzi
 */
@WebServlet(name = "GebotServlet", urlPatterns = {"/GebotServlet"})
public class GebotServlet extends HttpServlet {

    /**
     * Processes requests for both HTTP
     * <code>GET</code> and
     * <code>POST</code> methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    
    public GebotServlet () {
        super();
    }
    

        
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        
        // UserID abfragen
        HttpSession session = request.getSession(true);
        // UserID des Bieters
        int sessionuserid = (Integer)session.getAttribute("userID");
        // UserID des Users, der den Artikel anbietet
        int userid = Integer.parseInt(request.getParameter("userid"));
        
        
        // Höhe des Gebots
        String strGebot = request.getParameter("gebot");
        float hoehe = Float.parseFloat(strGebot);
        String strID = request.getParameter("id");
        int artikelid = Integer.parseInt(strID);
        // worauf wurde geboten? Buch, Skript oder Software?
        String artikeltyp = request.getParameter("artikeltyp");
        SQLabfrage abfrage = new SQLabfrage();
        Artikel a = abfrage.getArtikel(artikelid, artikeltyp);
        
        if(userid == sessionuserid) {
            response.sendRedirect("index.jsp?param1=products&param2="+artikeltyp+"&param3="+strID+"&error=5");
        }
        else {
            try {
                User user = abfrage.getUserProfile(sessionuserid);
                Gebot gebot = new Gebot(hoehe, sessionuserid, artikelid, artikeltyp);
                Auktion auktion = new Auktion();
                // das Gebot muss höher als der Startpreis sein
                float startpreis = auktion.getStartpreis(a);
                if(hoehe > auktion.getHoechstgebot(a) && hoehe > startpreis) {
                    abfrage.saveGebot(user, gebot);
                    response.sendRedirect("index.jsp?param1=products&param2="+artikeltyp+"&param3="+strID+"&param4=success");
                }
                else {
                    response.sendRedirect("index.jsp?param1=products&param2="+artikeltyp+"&param3="+strID+"&error=1");
                }
            } catch (Exception e) { System.out.println("Exception e: "+e); }
        }
    }
}
